1. Field of the Invention
The present invention generally relates to the field of data processing devices, and more particularly to a reconfigurable deinterleaving/interleaving device for block oriented data, suitable for use in a portable communication receiver.
2. Description of the Prior Art
Many communication protocols in use today interleave the data prior to transmission to provide immunity from noise and burst errors. One such communication protocol which interleaves message data for transmission is the Golay Sequential Code format, widely used in paging systems manufactured by Motorola, Inc. The interleaved message data, when received by a pager, must be deinterleaved to extract the true information content of the message prior to displaying the data. Such pagers have used a microprocessor and software algorithms to deinterleave the data as the data was received. Substantially more memory was required with the software deinterleaving process, than was required to simply store the received interleaved data, due to the complexity of the deinterleaving process. In order to be able to process long messages, two scratch pad memory areas were required, a first area to store a portion of the message as it was currently being received, and a second area which stored a previously received portion of the message. As the first memory area was being filled, the second memory area was being deinterleaved. By the time the first memory area was filled, deinterleaving of the second memory area was completed, in which case data in the first memory area was then deinterleaved, while new data was being stored in the second memory area. The process of switching between scratch pad memory areas was continued until the complete message was received, deinterleaved and stored in the message memory.
Multiple dedicated scratch pad memory areas were required to deinterleave the data as it was received, as the software deinterleaving algorithm was clock cycle intensive, and deinterleaving of the interleaved data block could not be completed by the microcomputer before the next data block was being received. To software deinterleave one Golay Sequential Code (GSC) data block, which consists of eight codewords, seven 15,7 BCH codewords plus a fifteen bit block parity codeword, required in excess of 3100 clock cycles. Also, to perform the deinterleaving process on one interleaved data block during the time the second interleaved data block was being received required the microcomputer to operate at a substantially high data bus rate of approximately 1 MHz. Operation at such a high bus rate resulted in increased microcomputer current drains, impacting the pager battery life obtainable compared to processing non-interleaved data. The problems of a clock cycle intensive deinterleaving routine and increased current drain are compounded when codewords longer than fifteen bits are interleaved, or when codewords are interleaved to a depth greater than eight codewords. Software deinterleaving rapidly becomes impractical at data rates above the 600 bit per second data rate of the GSC code format, as data would be received faster than it could be deinterleaved. To deinterleave at higher data rates would require the received data be completely stored prior to deinterleaving, greatly increasing the memory required to process and store messages.
Prior art deinterleavers have also previously only been designed to deinterleave a single interleaved data block format. However, pagers have been described which are capable of operating in systems utilizing different signaling, or code formats. One such pager is described in U.S. Pat. No. 4,518,961, issued May 21, 1985 to Davis, et al., entitled "Universal Paging Device with Power Conservation" which is assigned the assignee of the present invention. The pager described is capable of adaptively decoding a plurality of signaling formats, such as the Golay Sequential Code signaling format and the POCSAG signaling format. While the POCSAG data blocks are not interleaved, increased reliability in data transmission could be obtained if the data blocks were interleaved, due to the elimination of burst errors. However, the GSC data block consists of fifteen bit codewords, while the POCSAG data block consists of thirty-two bit codewords, and consequently, prior art data deinterleavers were incapable of processing both data formats. There is a need for a data deinterleaver which can deinterleave variable length data codewords and which can be simply reconfigured to deinterleave more than one interleaved data block size for use with more than one signaling format.